﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ForrajeriaDAL;
using ForrajeriaDB;
using System.Transactions;
using System.Data;

namespace ForrajeriaBCL
{
    public class EmpleadoBCL : InterfaceBCL<EmpleadoMO>
    {
        private EmpleadoDAL empleadoDAL;
        public EmpleadoBCL()
        {
            empleadoDAL = EmpleadoDAL.Instance; //consumiendo patron SINGLETON
        }
        public List<EmpleadoMO> GetAll()
        {
            try
            {

                return empleadoDAL.GetAll();
            }
            catch (Exception ex)
            {
                Exception ez = new Exception("Error de conexion con la Base de Datos");
                throw (ez);
            }
        }

        public DataTable reporteEmpleadoMasVentas(DateTime fecha, string ordena , string dire)
        {
            try
            {
                return empleadoDAL.reporteEmpleadoMasVentas(fecha,ordena, dire);
            }
            catch (Exception ex)
            {
                Exception ez = new Exception("Error de conexion con la Base de Datos");
                throw (ez);
            }
        
        }


        public string Adicionar(EmpleadoMO item)
        {
            try
            {
                
                {
                   
                    
                    empleadoDAL.Adicionar(item);
                }
                return "1";
            }
            catch (Exception ex)
            {
                return "Error de Escritura en base de Datos";
            }
        }

        public string Eliminar(EmpleadoMO item)
        {
            try
            {
                empleadoDAL.Eliminar(item);
                return "1";
            }
            catch (Exception ex)
            {
                return "Error de Acceso a Base de Datos";
            }
        }

        public string Actualizar(EmpleadoMO itemNuevo, EmpleadoMO itemViejo)
        {
            try
            {
                empleadoDAL.Actualizar(itemNuevo, itemViejo);
                return "1";
            }
            catch (Exception ex)
            {
                return "Error Al modificar el Empleado";
            }

        }

        public EmpleadoMO getByID(int codigo)
        {
            try
            {
                return empleadoDAL.getByID(codigo);

            }
            catch (Exception ex)
            {
                throw new Exception("Error: " + ex.Message);
            }
        }
        
    }
}
